﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BatallaNavalgo
{
    public abstract class Disparo
    {
        protected int costo;
        protected int turno;

        public Disparo(int turno)
        {
            this.turno = turno;
        }


        /**********************************************************************************/

        public int Costo
        {
            get { return this.costo; }
        }

        /**********************************************************************************/
        
        public int Turno
        {
            get { return this.turno;}
        }

        /**********************************************************************************/
        
        public virtual void PasarDeTurno()
        {
            turno--;
        }

        /**********************************************************************************/

        public bool DebeImpactar()
        {
            if (turno == 0)
                return true;
            return false;
        }

        /**********************************************************************************/

        public abstract void Impactar(Lancha lancha, FragmentoDeNave fragmento );

        /**********************************************************************************/

        public abstract void Impactar(Destructor destructor, FragmentoDeNave fragmento);
        
        /**********************************************************************************/

        public abstract void Impactar(Buque buque, FragmentoDeNave fragmento);

        /**********************************************************************************/

        public abstract void Impactar(PortaAviones portaAviones, FragmentoDeNave fragmento );

        /**********************************************************************************/

        public abstract void Impactar(RompeHielos rompeHielos, FragmentoDeNave fragmento );
    }
}